<?php
  // Pour usurper l'identité d'un utilisateur
  // auteur : Sebastian Mosser
  
  
class fStoleIdentity extends aFeature {
   
   
   public function __construct() {
      $this->_acl = new AccessControlList();
      $this->_acl->setGranted(7);
   }

   public static function getTocEntry() {
      return "Usurpation d'identité";
   }

	public static function getRealName() {
		return "Usurpation d'identité";
	}
	
	public static function getSemantic() {
		$res  = "Cette fonctionnalité permet de prendre le contrôle de la session d'un utilisateur du système Balloon";
		return $res;
	}
   
  protected function run() {
  	$action = PropRetriever::getProp($_POST,"action");
  	if ($action == "do")
  		return $this->stole();
  	else
  		return $this->displayForm();
  }
  
  
  private function stole() {
  	$userId = PropRetriever::getProp($_POST,"userId");
  	Login::unSubscribe();
  	Login::subscribe($userId);
  	header("Location: " . BALLOON_BASE_URL);
  	
  }
  
  private function displayForm() {
  
  	$users = User::getAllAsList();
  	
  	$page = <<<EOS
<h1> Usurpation d'identité </h1>
<p> Selectionnez l'utilisateur dont vous voulez prendre la place, puis cliquez sur <span class="error">[ Usurper ]</span>.

<div align="center">

<br /> <br />

<form method="post" accept-charset="utf-8"
			action="?" >

<input type="hidden" name="action" value="do" />


	<fieldset>
		<legend> Utilisateurs disponibles </legend>
		<br />
		
		<label> 
			<span> Login : </span>
			<select name="userId" class="edit" />
			${users}
			</select>
			&nbsp; &nbsp;
		</label>
		<br />
		<br />
		<input type="submit" value="Usurper" class="edit" />
		<br />
	</fieldset>
	
</form>
</div>

EOS;
  	return $page;
  }
  
  
}  
   
?>